import java.util.*;

public class Test3 {



    public static void main(String[] args) {

        Map<Integer, ArrayList<Integer>> map = new HashMap<>();
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();

        for (int i = 0; i < 26; i++) {
            map.put(i, new ArrayList<Integer>());
        }

        for (int i = 0; i < s.length(); i++) {
            map.get(s.charAt(i) - 'a').add(i);
        }

        //N张卡片
        int N = sc.nextInt();
        sc.nextLine();
        int sLen = s.length();
        StringBuilder sb = new StringBuilder(s);
        for (int i = 0; i < N; i++) {
            String[] st = sc.nextLine().split(" ");
            Integer opt = Integer.valueOf(st[0]);
            if (opt == 2){
                int x = Integer.valueOf(st[1]) - 1;
                int y = sb.charAt(x) - 'a';
                int left = 0;
                int right = map.get(y).size() - 1;
                int pos = -1;
                while (left <= right){
                    int mid = (left + right) / 2;
                    if (map.get(y).get(mid) <= x){
                        pos = mid;
                        left = mid + 1;
                    }else {
                        right = mid - 1;
                    }
                }
                if (pos == 0 && map.get(y).size() == 1){
                    System.out.println(-1);
                }else if (pos == 0){
                    System.out.println(map.get(y).get(pos + 1) - x);
                }
                else if (pos == map.get(y).size() - 1){
                    System.out.println(x - map.get(y).get(pos - 1));
                }else {
                    System.out.println(Math.min(x - map.get(y).get(pos - 1), map.get(y).get(pos + 1) - x));
                }
            }else {
                map.get(st[1].charAt(0) - 'a').add(sLen);
                sb.append(st[1].charAt(0));
                sLen += 1;
            }
        }




    }

    /**
     * 美团第一题
     * */
    public static void process1(int x){





    }

//    /**
//     *
//     * 美团第二题
//     * */
//    public static void process2(int N, List<List<Integer>> in){
//
//    }
//
//    /**
//     *
//     * 美团第三题
//     * */
//    public static void process3(int N, List<List<Integer>> in){
//
//    }
//
//    /**
//     *
//     * 美团第四题
//     * */
//    public static void process4(int N, List<List<Integer>> in){
//
//    }

}
